[XEND] Be more generous with the default shadow allocation.
authorTim Deegan <Tim.Deegan@xensource.com>
Wed, 25 Oct 2006 10:44:58 +0000 (11:44 +0100)
committerTim Deegan <Tim.Deegan@xensource.com>
Wed, 25 Oct 2006 10:44:58 +0000 (11:44 +0100)
Allow enough shadow memory to avoid thrashing the shadow pages,
rather than just enough for safety.
Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
tools/python/xen/xend/image.py

index 88a8a169bcde2e60067dbe9888977bffdd81b8b3..b3ed4417d237a15f1d7bf35179d4d931e24d8bed 100644 (file)
@@ -500,9 +500,12 @@ class X86_HVM_ImageHandler(HVMImageHandler):
         # overhead due to getRequiredInitialReservation.
         maxmem_kb = self.getRequiredInitialReservation(maxmem_kb)
 
-        # 1MB per vcpu plus 4Kib/Mib of RAM.  This is higher than 
-        # the minimum that Xen would allocate if no value were given.
-        return max(1024 * self.vm.getVCpuCount() + maxmem_kb / 256,
+        # 256 pages (1MB) per vcpu,
+        # plus 1 page per MiB of RAM for the P2M map,
+        # plus 1 page per MiB of RAM to shadow the resident processes.  
+        # This is higher than the minimum that Xen would allocate if no value 
+        # were given (but the Xen minimum is for safety, not performance).
+        return max(4 * (256 * self.vm.getVCpuCount() + 2 * (maxmem_kb / 1024)),
                    shadow_mem_kb)